package com.ebelter.temperature.models;


import android.content.Context;
import android.media.AudioManager;
import android.media.SoundPool;
import android.os.Vibrator;
import com.ebelter.btcomlib.common.Constants;
import com.ebelter.btcomlib.utils.UserSpUtil;
import com.ebelter.temperature.R;

/**
 * 提醒工具
 */

public class T_WarringModelUtils {


    private boolean isOpen = true;


    private Vibrator vibrator ;
    private static final  long[] patter = {1000, 800};

    private SoundPool soundPool;


    public T_WarringModelUtils(Context context) {
      vibrator= (Vibrator) context.getSystemService(context.VIBRATOR_SERVICE);
        soundPool= new SoundPool(21, AudioManager.STREAM_SYSTEM,10);
        soundPool.load(context, R.raw.warring1,1);
    }

    public void setOpen(boolean open) {
        this.isOpen = open;
    }

    public void receiveTemperature(float temperature){
        if (!isOpen){
            return;
        }

        //设置的温度警告值
        float wT = UserSpUtil.readFloat(Constants.IUser.T_Warring_Value,37);

        if (wT<=temperature){
            //需要提醒用户
            //0代表震动 1代表响铃
            int warM = UserSpUtil.readInt(Constants.IUser.T_Warring_Model,0);
            if (warM==0){
                vibrationRemind();
            }else {
                voiceRemind();
            }

        }







    }

    //声音提醒
    private void voiceRemind() {
        if (soundPool!=null){
            soundPool.play(1,1, 1, 0, 0,  1f);
        }



        /**
         * soundPool.play(1,1, 1, 0, 0, 1);
         * 第一个参数为id，id即为放入到soundPool中的顺序，比如现在p_belly1是第一个，
         * 因此它的id就是1。第二个和第三个参数为左右声道的音量控制。第四个参数为优先级，
         * 由于只有这一个声音，因此优先级在这里并不重要。第五个参数为是否循环播放，
         * 0为不循环，-1为循环。最后一个参数为播放比率，从0.5到2，一般为1，表示正常播放。
         */


    }

    //响铃提醒
    public void vibrationRemind() {

        if (vibrator!=null&&vibrator.hasVibrator()){
            vibrator.vibrate(patter, -1);
        }


    }
}
